Electronic programming guide

ABSTRACT

An electronic programming guide (“EPG”) in accordance with the invention provides pictograms and/or logos, to indicate to a television viewer the television programs being displayed on a television. The EPG information display format is thus easier to recognize than prior art EPG formats. In one embodiment, the EPG pictograms have 3D characteristics. The EPG information can be displayed in a window within a television screen while a program is being shown on the remainder of the screen. Thus, the viewer can know what is playing on the various channels while he or she is watching one of the channels. In one embodiment, the EPG is used in conjunction with a remote controller that includes a help button for facilitating operation of the EPG by the user. The EPG comprises a set of geometric surfaces located in virtual 3D space. The pictograms and/or logos, along with alpha-numeric text data and video clips are applied to the geometric surfaces using a 3D graphics pipeline. The video clips can comprise video programs, preview clips, or video data stored on a hard drive. The appearance of the pictograms, logos, alpha-numeric data and/or video clips can be modified in response to a user actuating a control element on a remote controller. Such modification can include changing the position of the geometric surface, or its lighting. All or some of the pictograms, logos, alpha-numeric data and video clips can be, changed over time based on broadcast data. In one embodiment, internet HTML pages are parsed and applied to geometric surfaces in 3D virtual space.

BACKGROUND OF THE INVENTION

The present invention pertains to electronic programming guides(“EPGs”).

Presently existing EPGs provide television viewers with on-screentelevision schedule information, e.g. in a convenient regular ornon-regular rectangular grid format. One type of EPG is used inconjunction with an analog television system. In such a system, one ofthe cable channels is reserved for displaying programming information.The programming information is displayed in a grid, e.g. grid 2 of FIG.1. Grid 2 comprises four columns 3-6. First column 3 lists the variouschannels of the cable broadcast system. Columns 4, 5 and 6 indicate whatis showing on the channels listed in column 3 in half-hour increments.Thus, if one tunes to the EPG at 10:35 p.m., second column 4 displayswhat is showing between 10:00 and 10:30 p.m., third column 5 displayswhat is showing between 10:30 and 11:00 p.m., and fourth column 6displays what is showing between 11:00 p.m. and 11:30 p.m. A row 7 atmid-screen indicates what time slots columns 4 to 6 correspond to. (Aportion 8 of screen 9 above row 7 usually provides continuousadvertisements.)

In most cable TV systems, there are more television channels than thereis space for rows in grid 2. Accordingly, grid 2 typically scrolls at apre-selected slow rate, so that a viewer can see what is showing on allof the channels.

The information contained in an analog EPG. is typically broadcast by acable operator on a dedicated one of the channels of the cable TVsystem.

Most digital EPGs operate in a different way. In a digital EPG, programschedule information, and sometimes applications and/or systemssoftware, is transmitted to equipment located on the viewer's premises(usually a “digital set-top box” or STB) by way of broadcast, cable,direct satellite or some other suitable form of transmission. The STBcontains memory (and is in essence a dedicated computing device) so thatthe program schedule information can be stored for later viewing. Theprogram schedule information stored in the STB is periodically updated(e.g., on a continuous, daily, weekly, or biweekly basis). Amicroprocessor within the STB cooperates with the viewer's televisionset to display the stored program schedule information and to implementother functions of the EPG in response to user-generated signals. Thefunctions available depend on the sophistication of the particular EPG.

Digital EPGs are often used in an interactive television system. In aninteractive television system EPG, a user may browse scheduleinformation in any order, select programs from on-screen menus forcurrent or future viewing and order pay-per-view programming on demand.Some EPGs permit other functions, e.g. an e-mail function, or a functionthat permits a user to block certain kinds of programs such as adult orviolent programs.

Collectively, prior EPGs fail to provide viewing capabilities thatrealistically address the viewing habits of the users of these systems.As mentioned above, an analog TV EPG is viewed on a TV screen as apermanently scrolling rectangular table. This solution does not requirefrom users any additional interaction and is suitable for a completelypassive television viewer (the so-called “couch potato”). Unfortunately,this is a poor solution for interactive TV, because:

1. The scrolling speed is constant and cannot be adjusted.

2. In an analog EPG system, the user cannot switch to the channel ofchoice immediately from the EPG (e.g. by clicking on a display of achannel number on the EPG). Instead, the user must input the channelnumber with a remote controller.

3. The analog EPG scrolling table is completely sequential (providinginformation in an order depending upon channel number) and the usercannot pre-sort schedule data or otherwise personalize the EPG.

A two-way interactive EPG is more sophisticated. Unfortunately thissolution also has many problems. Interactive EPG systems providedrop-down menus that require multiple steps in order to interact withthe EPG, which is very frustrating when a search for a desired programis unsuccessful. The EPG is inflexible in terms of menu design, becausethe menu itself is a set of regular two-dimensional grids.

Some of the other problems with prior art EPGs are as follows.

1. Program Description Truncation. When displaying schedule informationin grid format, i.e., columns representing time slots and rowsrepresenting channels, program titles are generally truncated to fitinto the cells of the grid. The width of a grid cell varies with theprogram duration. Since a 30 minute program is allotted only a smallspace for the program title and description, titles and/or descriptionsfor half and even full hour programs often must be truncated to fit inthe allotted space. Some systems simply cut off the description of aprogram without abbreviating it in any way, such that the user cannotdetermine the subject matter of the program. Although some systemspartially alleviate this problem by providing two lines of text in eachgrid cell, this solution is not ideal because program descriptions maystill be truncated.

2. Inability to Simultaneously Channel Surf and View EPG. Prior EPGslack a method for creating a viewing itinerary electronically while auser concurrently views a program on the television screen. In otherwords, when a user views a program on a particular channel, he or shecannot electronically set up a sequence of other channels to surf.Moreover, these prior EPGs leave much guess work for the user as he orshe navigates through a sequence of channels. When skimming throughchannels and trying to determine what program is being displayed on achannel, commonly known as “channel surfing,” the user must guess whichprogram is currently being aired from the video segment encounteredduring channel surfing. Since much—in some cases, up to 30%—of theprogramming appearing on a channel at any given time is advertising, theuser is not provided with any clues as to what program is appearing on aselected channel at a given time. Therefore, the user must wait untilthe advertisement or commercial ends before learning which program isappearing on the selected channel. Thus, a need exists for an EPG thatdisplays current program schedule information for each channel at thesame time that the user surfs through the channels.

3. Text Size. Unfortunately, current EPGs allow for only one font size.However, human beings do not all have the same acuity of vision.Therefore, some viewers may be unable to read the information in theEPG.

4. Specular Highlighting. Existing EPGs provide only a very rudimentarylighting capability. In other words, existing EPGs do not have a verysophisticated ability to adjust the brightness of the EPG. This detractsfrom the utility of the EPG.

SUMMARY

An EPG in accordance with one embodiment of the invention comprises aset of pictograms containing information identifying programs beingshown on a set of video channels. The pictograms comprisenon-alphanumeric symbols to assist a viewer in determining what is beingshown, even if the various options displayed in the EPG are too smallfor normal alphanumeric characters to be used. In one embodiment, thepictograms contain one or more colors that assist the viewer inrecognizing the pictogram and thereby determining what programs arebeing shown. In one embodiment, the EPG includes both pictograms andtext (alphanumeric symbols) to indicate what programs are being shown.

In one embodiment, the EPG is shown in a window region within atelevision screen while the other portion of the screen displays atelevision program. Thus, a viewer can view a program broadcast on atelevision channel and the EPG simultaneously. The viewer can determinewhat program is on the channel he is watching, even if the viewer turnsto that channel while a commercial is being shown. Further, the viewercan identify other programs and select them by clicking on various iconsor pictograms in the EPG. Thus, the viewer can easily select channelsshowing other desirable programs while the television is tuned toanother program.

As mentioned above, the EPG uses pictograms. These pictograms can bedistinctive in shape and color. Thus, even if the EPG is “shrunk” to fitin a relatively small window within the TV viewing screen, a viewer canstill determine from the EPG which programs are of interest, and whichprograms are not of interest.

In one embodiment, the EPG permits a user to “zoom” in on, or otherwisevisually expand portions of, the EPG program listing. Thus, the viewercan identify those parts of the EPG showing programs of interest.

In one embodiment, the EPG and EPG pictograms are generated using a 3Dgraphics pipeline. The EPG comprises a set of textured geometricsurfaces that form the pictograms as well as alphanumeric text data.(The geometric surfaces textured to form pictograms and alphanumericdata are called “data surfaces”.) The EPG also comprises a set of “videosurfaces,” i.e. geometric surfaces textured with video images fromtelevision programs, previews of television programs, or video datastored in a memory such as a hard disk drive. The geometric surfaces,including both data surfaces and video surfaces, can be arbitrarilypositioned in virtual 3D space to provide data and video information.For example, the video surfaces can be positioned in one part of atelevision screen and the data surfaces can be positioned an anotherpart.

In one embodiment, display of the EPG surfaces can be modified inresponse to certain events, e.g. a remote controller button beingpushed. For example, when a control button on a remote controller isactuated to select one of the pictograms, the EPG can highlight theselected pictogram, or alter a video surface showing a program preview.This alteration of the video surface can be in the form of zooming in onthe video surface by changing its position in virtual 3D space orchanging the color of the video surface by changing specular, ambient,and directional lighting. In one embodiment, the EPG can alter a datasurface by changing the texture applied to that surface, changing thelighting applied to that surface, or moving the surface in virtual 3Dspace. By altering the various video and data surfaces, the surfaces(including pictograms) can be observed from different perspectives,(i.e. from different “virtual locations”). This facilitates a viewerzooming in on the various pictograms to better identify what kind ofprogram they represent.

In one embodiment, the EPG includes icons or pictograms related to otheritems of interest, e.g. icons or pictograms that can be clicked on forpay-per-view events. Thus, a viewer can click on a pictogram to watch apay-per-view boxing match, movie, concert, or other event.

In another embodiment, icons or pictograms are included in the EPGcorresponding to different types of merchandise or services. A user canclick on these pictograms to obtain information concerning these goodsand services, and order them using the EPG.

In one embodiment, the EPG provides user assistance. This userassistance can be in the form of prompts that are displayed if theviewer presses an inappropriate control button. In another embodiment,the EPG indicates to the viewer what controls are appropriate to actuatein a given situation.

In one embodiment, the font size (and the pictogram size) of the EPGimage can be adjusted by the user, as can the lighting and colors of theEPG display.

These and other features of the invention are described in greaterdetail below.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an EPG display in accordance with the prior art.

FIG. 2 illustrates an EPG display in accordance with the presentinvention.

FIG. 2A illustrates an EPG display including a set of columns indicatingwhat is being shown on television during various time periods.

FIG. 2B illustrates an EPG displayed in a window region within atelevision screen.

FIG. 2C illustrates an EPG display comprising a region for showingthumbnail displays of different programs.

FIG. 2C′ illustrates an EPG using faces of a polyhedron to showthumbnail displays of different programs.

FIG. 2D illustrates an EPG displaying a window indicating which remotecontroller keys can be pushed.

FIG. 3 illustrates a television screen displaying information concerningproducts that can be purchased using the EPG.

FIG. 4 illustrates a set of polygons depicting the surface of apictogram object to be displayed on a television screen as one of thesymbols that constitute part of the EPG.

FIG. 5 schematically illustrates 3D aspects of the images displayed inthe EPG. FIG. 5 also shows the manner in which an EPG in accordance withthe present invention can be viewed concurrently with a televisionprogram.

FIG. 5A illustrates an EPG in which the location of a virtual objectwithin the EPG has moved to a location closer to a virtual viewer.

FIG. 6 is a block diagram of a television system in accordance with thepresent invention.

DETAILED DESCRIPTION

This invention relates to an EPG system that provides a user withschedule information for broadcast programs (including cablecast, ordatacast programs) viewed by the user on a television or a PCTV. (A PCTVis a personal computer having the capability of displaying videoprograms.) This invention also relates to an improved EPG that uses a 3Dgraphics pipeline to display images, alphanumeric text and video dataand provides the user with a more powerful and convenient television ina desktop environment, while simultaneously increasing the efficiency ofnavigation by the user through the EPG.

FIG. 2 shows a television system 100 comprising a video screen 102 inaccordance with the invention. Screen 102 is shown in a slight isometricaspect to allow some of the banners such as 110, 111, 120 etc. to bevisibly skewed, as in 3D space. In many cases, the normal view wouldactually be perpendicular to the viewer's line of sight. An EPG inaccordance with the invention can be put in any of several modes. In onemode, the EPG is programmed to list television programs of a particulartype, e.g. sports programs, movies, children's programs, sitcoms, etc.In the example displayed in FIG. 2, the EPG lists sports programs. Inanother mode (not shown), the EPG lists movies that are currently beingshown on television. In another mode, the EPG lists all programs,regardless of the type of program, in the order of the televisionstation number. In another mode, the EPG lists programs alphabetically.A user can select the EPG mode by actuating appropriate control buttonson a remote control device 150. In FIG. 2, a rectangular title bar 104indicates the type of programs listed by the EPG. In particular, titlebar 104 indicates that the programs listed by the EPG are sportsprograms. The selected listings, as an example only, include threecolumns, the first of which identifies the various television stations(110, 120, etc.), the second column identifies the program (111, 121,etc.) and the third column identifies special activities such asmerchandising (112,122, etc.).

Rather than displaying a matrix of rectangular boxes containing text asshown in FIG. 2, 3D objects with real shapes can be displayed on screen102 along with rectangular or bar shaped text blocks. For example,display element 110 shows “ABC™” in a rectangular block, while displayelement 120 shows Fox™ as a waving flag, symbolically indicated byarrows 120 a and 120 b. One example of a method for displaying such animage using 3D accelerator technology is discussed below.

Display element 121 is a baseball and bat, thereby indicating that theshow in question is a baseball game. Again, motion of the bat issymbolically indicated by arrow 121 a. Display element 111 is a textblock, indicating that a program being shown is a football game. It isthus seen that the EPG can use both pictograms and text blocks toindicate what program is being shown. However, in other embodiments,only pictograms are used. The pictograms and/or text blocks can bedisplayed using colors that help identify what program is being shown.

The EPG is typically used in conjunction with a remote control device,e.g. remote control device 150. Remote control device 150 cancommunicate with television system 100 in any of a number of ways, e.g.infrared signals, radio signals, or a cable connection. In oneembodiment, the remote control device contains a mechanism by which theuser can manipulate a cursor, e.g. cursor 152 on screen 102. Remotecontrol device 150 can comprise a joystick, track ball, touch pad,mouse, a set of up/down left/right buttons, lever, or other type ofcontrol mechanism. The user can move cursor 152 to image 110 to selectand watch the program playing on the channel corresponding to image 110(in this example, ABC). Alternatively, the user can move cursor 152 toimage 120 to watch the program playing on the channel corresponding to,image 120. Alternatively, the viewer can click on image 111 to watch theprogram corresponding to image 111 (in this case, a NFL football game).

As mentioned above, remote controller 150 can use any of a number oftransmission techniques to communicate with television system 100. Inaddition, remote controller 150 can be a dedicated for use withtelevision system 100 (e.g. incorporating a single command set for usewith system 100), or remote controller 150 can be designed for use inconjunction with different types of devices in addition to televisionsystem 100. In addition, remote controller 150 can be programmable sothat it can implement different types of command sets. (An example of aremote controller having such programmable capabilities is discussed inU.S. Pat. No. 4,918,439, issued to Wozniak et al.)

As mentioned above, the third column of images on screen 102 depictsicons or pictograms relating to merchandising. Screen 102 depicts logosor pictograms pertaining to merchandise that can be displayed andpurchased using television system 100. For example, adjacent to logo 121indicating that a baseball game is being shown on a particular station,a large baseball logo 122 appears, indicating that baseball-relatedproducts can be viewed and ordered by clicking on logo 122. A user canuse cursor 152 to click on these logos to obtain information about theitems being sold. For example, a user can click on baseball 122 toaccess information concerning merchandise that can be purchased usinghis or her interactive television system. When the user does this,information is downloaded from an information source and displayed onscreen 102. This information pertains to products that can be purchasedfrom a vendor. In one embodiment, this information is downloaded from awide area network (“WAN”) such as the Internet. Alternatively orconcurrently, the information can be provided by the broadcaster thatprovides the television programs to television system 100. (Thisinformation can be provided on a dedicated channel. Alternatively, theinformation can be embedded in one of the blanking periods of thetelevision signal, or embedded by any other suitable method compatiblewith the relevant analog and/or digital broadcast and encryptionstandards.) When the user clicks on baseball 122, information such as aweb page is displayed on screen 102, listing various items that can bepurchased, e.g. baseballs, bats, gloves, baseball cards, beer mugs, teambanners, etc. For example, a page such as that shown in FIG. 3 can bedisplayed, illustrating the various items 161 to 165 that can bepurchased, information in text blocks 166 to 170 concerning those items,and boxes 171 to 175 indicating the price of those objects. In oneembodiment, the user can move cursor 152 to a picture of one of theitems and click on that item to purchase it. (There are differentcontrol elements known for moving cursors including but not limited tosuch as mice, trackballs, gloves, keys, touchpads, joysticks etc. One ormore of these control elements can be used to move cursor 152. Asmentioned above, one or more of these control elements are typicallyincorporated in remote controller 150 for this purpose.) When a userclicks on one of items 161-165, a signal is communicated to the cablebroadcast system, and the purchaser's order is processed. This can beaccomplished using hardware similar to that discussed in U.S. patentapplication Ser. No. 09/449,016, filed by Kamen et al. on Nov. 24, 1999(docket no. isurfTV11), incorporated herein by reference.

Television networks or cable or satellite system operators may displaylogos or alternatively, a combination of indicative icons and corporatelogos on EPG screen 102. For example, if a baseball game is played in3Com park in San Francisco, 3Com Corporation, for an additional fee, canhave its logo inserted on screen 102 in lieu of or along with baseballand bat pictogram 121. Alternatively, in lieu of or along with baseballand bat pictogram 121, screen 102 may display logos of the teamsplaying. These logos can appear alone or placed on or adjacent to animage of a baseball to highlight the fact that the program in questionis a baseball game. Numerous other combinations can also be displayed onscreen 102.

Stations can use special logos or pictograms to be displayed by the EPGfor their show categories, such as a magnifying glass for mysteries (or,alternatively a handgun), a smiling face for sitcoms, a guitar for musicvideos, etc. These logos or pictograms facilitate recognizing a show.

In some embodiments, the EPG grid can display text blocks and pictogramscorresponding to some programs. Accordingly, screen 102 can get crowded.However, it will remain easy to recognize the shows by the shape and/ormotion of the displayed pictograms, especially compared with therectangular text blocks used in current EPGs. Further, if the pictogramson screen 102 use different colors (particularly unique colors), thisfurther enhances readability of an EPG in accordance with the presentinvention compared with currently existing EPGs.

In one embodiment, the text blocks appearing in the EPG, if any, canalso have unique colors and or fonts, which make it easier to recognizethem as well.

In one embodiment, the user can program the EPG to modify the color andbrightness of the different pictograms and text blocks, or to assigndifferent color schemes to the pictograms or text blocks. Thus, a usermight have all comedy-related pictograms or text blocks color-coded asbright blue, and all dramas are color coded as bright red. This furtherenhances the ability of the user to use the EPG to select desiredprograms with great ease. In particular, program types may berecognized, even if the text is too small to read. (The EPG typicallyreceives information from the broadcaster indicating the types ofprograms being broadcast. The EPG can then display the programinformation in the appropriate color. This information can be receivedas part of the cable broadcast signal, or can be received from anothersource, e.g. a LAN or WAN.) The color of the various pictograms and textblocks can be modified by controlling the color of a “virtual lightingsource” (described below) that is used to generate the image.Alternatively, the color of texture pixels used to generate the imagecan be modified. (As explained below, the various text blocks andpictograms are generated using a 3D graphics pipeline. This pipelinegenerates images by applying texture maps to one or more geometricsurfaces, and applying a virtual light source to the textured surface orsurfaces. The process by which this is done is described below.)

In one embodiment, the EPG pictograms and text blocks are scaled in thex and y directions to show expected run times. Alternatively, in anotherembodiment, the EPG pictograms and text blocks are scaled in the x and ydirections to show their importance or rating on a scale, to which theviewer can subscribe. For example, in one embodiment, the user cansubscribe to a movie rating service that rates the quality of movies.Information from the rating service can either be entered into the EPGsystem by the user, or by the cable system broadcaster. Exceptionallygood films can be highlighted, e.g. by expanding the text block orpictogram associated with those films.

Similarly, the EPG can be programmed with information indicative of auser's tastes. Thus, if the system is programmed with informationindicating that the user particularly enjoys sports programs, the EPGwill highlight or expand those text blocks and pictograms correspondingto sporting events. Similarly, if the system has been programmed toindicate that the user prefers educational television, the EPG willhighlight or expand those text blocks and pictograms corresponding toeducational programs.

FIG. 2 illustrates an EPG display screen with three columns. In otherembodiments, the EPG comprises more than three columns. For example, asshown in FIG. 2A, a first column 190 lists program channels, a secondcolumn 191 depicts programs currently playing, a column 192 depictsprograms playing in the next half-hour, and a fourth column 193 depictsprograms playing in the half hour after that. In FIG. 2A, baseball bat121 spans columns 191 and 192, thereby indicating that the baseball gameis expected to continue into the time slot corresponding to column 192.However, text block 111 does not extend through into column 192. Thisindicates that the football game is not expected to extend into the timeslot corresponding to column 192. As can be seen, a pictogram 194indicates that after the football game, ABC will be showing a horserace.

EPG Window Region

As mentioned above, frequently a viewer will want to channel surf whilebeing able to determine what program he or she has just turned to. If acommercial is playing, the viewer has no way of knowing what program ison. In one embodiment, the viewer can press a control button on remotecontroller 150 that causes a window 103 a to open on screen 102 FIG.2B). The EPG is displayed within window 103 a. Thus, a user can channelsurf and watch programs on portion 103 b of screen 102, whilesimultaneously seeing an identification of the program that he or she iscurrently watching. This is particularly useful if a commercial isplaying. In addition, the user can see what is playing on otherchannels, and he or she can click on pictograms or text blockscorresponding to those other channels (or pictograms or text blockscorresponding to the programs being shown on those other channels) tochange the channel of the television system. This represents a majorimprovement over prior art EPGs, which typically take up an entiretelevision screen. Thus, these prior art EPGs do not permit a user tosimultaneously watch one channel while investigating what is on otherchannels.

EPG Embodiment Displaying Magnified Segments

In one embodiment, it may be desirable to permit a user to magnifyportions of the EPG so that the user can get a better view of what isbeing displayed. Accordingly, remote controller 150 contains a button196 that permits the user to expand a selected portion of the EPGdisplay. This is schematically shown by a bar 130 that extends into aregion 131 of screen 102. As can be seen, the portion of bar 130extending into region 131 is magnified, so the viewer can more easilysee what bar 130 represents. A user can control which portions of theEPG display are magnified by pressing button 196 and moving cursor 152to a portion of the display that the viewer wants magnified.

EPG Embodiment Displaying 3D Images

In one embodiment, the graphics circuitry that provides the informationdisplayed on screen 102 stores the image elements in a 3D model andgenerates the image using a 3D accelerator. This is done in a mannersimilar to that described in our U.S. patent applications Ser. No.09/344,442 (docket No. isurfTV1) and Ser. No. 09/361,470 (docket No.isurfTV2). (The '442 and '470 Applications describe 3D acceleratortechnology and are incorporated herein by reference.) Briefly, this isaccomplished by a) storing a computer model of a geometric surface ofone or more pictograms in a first set of memory locations within thetelevision STB; b) storing within a second set of memory locations a twodimensional image to be mapped onto that surface (e.g. a pixel array);and c) constructing a pixel array comprising image 121. For example,image 121 is typically generated in the following manner.

1. A computer model describing the object depicted by image 120 isreceived from a source such as the broadcaster or some other source andstored in one or more memory devices within the STB. The computer modelis typically in terms of a) a set of geometric surfaces; and b) pixeldata that is to be applied, or “bound” to those surfaces. The geometricsurfaces can be defined in terms of a set of polygons, e.g. triangles.Each polygon is defined in terms of the x, y, z coordinates of itsvertices. Alternatively, these surfaces can be defined in terms of amathematical formula (i.e. “implicitly defined”). FIG. 4 schematicallyillustrates the polygons used to model the shape of the object depictedby image 121. FIG. 4 has the appearance of a wire frame model ofpolygons that show the shape of the surface and three-dimensionalfeatures (if any) of the object depicted by image 121. This wire framemodel is not shown on screen 102, per se. Rather, FIG. 4 is merelyprovided to schematically indicate what kind of information is containedin the memory file that describes the geometric surfaces. Furtherinformation concerning the process of constructing a mesh of polygons isdescribed in standard graphics libraries, such as Real 3D, published byReal 3D, a Lockheed Martin Corporation in 1996, and Direct 3D, publishedby New Riders Publishing in 1997, each of which is incorporated hereinby reference. The pixel data (contained in another memory file) includesinformation corresponding to colors and patterns to be applied to thepolygons of FIG. 4. In the case of image 121, this would include a pixelarray illustrating the appearance of wood, i.e. the wood finish of abaseball bat, the appearance of the baseball, and the letters “MLB”.

2. The pixel array data is then “bound” to the to mesh of polygons. Thisis accomplished by mapping polygon vertices to a location in the pixelarray. This portion of the process is roughly analogous to anupholsterer choosing a piece of fabric, and binding it with a few nailsto the corner of a couch being upholstered. The upholsterer subsequentlyasks his apprentice to finishing attaching the fabric to the couch. Inthis case, the 3D graphics accelerator finishes the task instead of anapprentice.

3. Thereafter, information is communicated to the 3D graphicsaccelerator within the STB identifying the location of a “virtualviewer.” In other words, information is communicated to a 3D graphicsaccelerator identifying a point of reference P (FIG. 4) from which theobject of image 121 is to be observed. Usually, point of reference P isa “default” position, and is simply some distance in front of thebaseball bat. However, as explained below, a user can change theposition P of this virtual viewer, e.g. with remote control device 150.

4. Information concerning a virtual lighting source is also communicatedto the 3D graphics accelerator. This information can include a) thecolor of the light being provided by the lighting source; b) thebrightness of this virtual lighting source; and c) whether the lightingsource is diffuse or specular.

5. Thereafter, the 3D graphics accelerator within the STB generatesimage 121 (typically in the form of a pixel array) of the baseball batas that baseball bat would be perceived by a virtual viewer if thevirtual viewer were located at point P and the baseball bat wereilluminated with the selected lighting source. The other pictograms,text blocks and images shown in FIG. 2 can be similarly generated. (Asexplained below, video programs and video clips can be bound togeometric surfaces for display on screen 102 as part of the EPG in asimilar manner.)

As mentioned above, more details concerning the basic process ofgenerating 3D images are discussed in the above-incorporated '442 and'470 applications. Also see Foley et al., “Computer Graphics” publishedby Addison-Wesley in 1996, incorporated herein by reference.

The fact that the various pictograms are generated in theabove-described manner has a special significance for an EPG inaccordance with the invention. In particular, the EPG maintains thevarious pictograms and blocks of the display in the form of a 3D objectmodel. Thus, a user can “zoom” toward or away from the variouspictograms of the EPG to make it easier to see what programs are beingdisplayed. This is accomplished by pressing appropriate control buttonson remote controller 150 and causing the 3D graphics accelerator toregenerate the EPG images from a different reference point, e.g. areference point closer to the baseball and bat. Thus, image 121 of thebaseball and bat will appear larger on screen 102.

The 3D aspects of the EPG are schematically shown in FIG. 5. Referringto FIG. 5, screen 102 is displaying a television program, but window 103within screen 102 displays the EPG information. Since the EPGinformation is confined to window 103, it is somewhat shrunk. The imageof the various icons and pictograms of the EPG are generated using a 3Dgraphics accelerator, and are displayed as if a virtual viewer werewatching these icons and pictograms from a particular distance. A viewercan “zoom” toward the pictograms to get a closer view of them byadjusting an appropriate control element on remote controller 150 (e.g.a touch pad, mouse, joystick, track ball, etc.). In this way, the usercan take a closer look at the pictograms.

Also, since the images of the pictogram objects are generated from acomputer model such that each object is at different virtual location inspace, a viewer may “fly” his virtual camera position close up to anobject, and thus be able to see more details.

As can be seen in FIG. 5, image 121 is roughly a virtual distance D1from the planar background portion 155 of the EPG. Text blocks 110 and111 are a virtual. distance D2 from planar background portion 155 of theEPG, whereas baseball 121 a and bat 121 are a virtual distance D2 fromplanar background portion 155. By manipulating the position of thevirtual viewer, located at point P, the virtual viewer can “fly” or“zoom in” on the various portions of the EPG, e.g. by moving thelocation of the virtual viewer to a point P′. (Of course, the actualviewer doesn't need to move. Rather, the graphics accelerator withintelevision system 100 reconstructs the EPG image on screen 102 as thatimage would be seen by a virtual observer moving from point P to P′.)

In one embodiment, in lieu of, or in addition to moving the position ofvirtual viewer P, one can also move the-location of the objectsdisplayed in the EPG. For example, in one embodiment, a user can clickon object 121 (the baseball bat). The EPG can respond by reconstructingthe image of the baseball bat on a geometric surface located a distanceD3 from plane 155 (FIG. 5A). This creates the visual impression ofhaving the baseball bat 121 move closer to the television viewer so hehas a better view of what he has just clicked on and selected. Theviewer can then confirm his selection by clicking, once again, onbaseball bat 121.

Just as the location of pictograms can be changed by clicking on them,the location in virtual 3D space of text blocks can also be changed inthe same manner. (As mentioned above, the text blocks are can be mappedonto geometric surfaces in the same manner as the various pictograms.)

Referring back to FIG. 4, in one embodiment, the polygon mesh in theshape of the baseball and bat can be a two-dimensional polygon mesh. Inother words, all of the polygon vertices are coplanar (i.e. the polygonmesh is flat) and all of the vertices have the same z dimension. Themesh has the outline of a baseball and bat when viewed from a directionperpendicular to the plane of the mesh. (When the vertices have the samez dimension, all of the vertices are the same distance from a virtualplane 155. Virtual plane 155 is the plane of the EPG background.)Arranging the polygon vertices so that they are all coplanar has theadvantage that any text mapped onto the polygons using the 3Daccelerator (e.g. the letters “MLB” in FIG. 2) is easily read. However,in another embodiment, the polygons are not all coplanar, and in fact,can actually be a 3 dimensional model of a baseball and bat. In otherwords, the polygons are not flat in this other embodiment. The polygonscollectively from the shape of a baseball and bat in three dimensions.(The ball is spherical and the bat is roughly cylindrical.) In thisembodiment, the polygon vertices have different z values.

Help Mode

An EPG in accordance with one embodiment of the invention can includeseveral features that enhance user friendliness. For example, in oneembodiment, the EPG; provides an indication of which buttons on theremote controller can be actuated in a given situation. In anotherembodiment, the remote controller contains a light emitting diode (LED)or other indicator, and if a user presses an inappropriate button on theremote controller, the LED illuminates, thereby informing the user thathe or she is doing something improper. (In this embodiment, the CPUwithin video system, 100 typically sends a signal to remote controller150. Alternatively, in this embodiment, a microprocessor within thecontroller itself determines when an inappropriate button is beingpressed.)

In yet another embodiment, the various control buttons of the remotecontroller contain or are associated with LEDs or other indicators (e.g.liquid crystal displays (LCDs) in conjunction with a touch screen etc.).The LEDs corresponding to those buttons that can be pressed in a givensituation illuminate, thereby informing the viewer which buttons he orshe can press in a given situation.

In yet another embodiment, the EPG may include a window on screen 102(not shown) that indicates to the user which buttons would beappropriate to actuate in a certain situation.

In yet another embodiment, the EPG displays user assistance informationon screen 102 if the user tries to actuate an inappropriate button onremote controller 150.

In yet another embodiment, the remote controller contains a “help” key.If the user presses the help key, screen 102 provides a window 500showing an image 502 of remote controller 150, and indicating which keyscan be pressed in a given situation (FIG. 2D). (The keys that can bepushed, e.g. keys 504, 506 and 508) are highlighted.

By indicating to the user which keys can be pressed in a givensituation, user friendliness of an EPG in accordance with the inventionis enhanced.

In one embodiment, the EPG provides automated assistance to a user. Thiscan be provided in several ways. For example, as mentioned above, theEPG can indicate to the user which remote control keys can be used in asituation. Additional information on their respective functions may alsobe provided. In another embodiment, the EPG includes a question markicon 510 (FIGS. 2A and 2D). The user can click on this icon, to obtainhelp information. Alternatively, the user can click on question markicon 510 and drag it to a pictogram on screen 102 to obtain informationabout what that pictogram does.

In one embodiment, one of the buttons on remote controller 150 is a“help” button that causes the EPG to depict on screen 102 a help menu.The EPG may suggest various “help” options by highlighting appropriateoptions to better guide the user.

Description of the Hardware Within the STB

Referring to FIG. 6, the hardware used by the receiver to practice theinvention typically comprises a) a CPU 300 (e.g. a Celeron or Pentium,manufactured by Intel Corporation, or any other equivalent CPU) coupledto a) a program memory 302 (typically a ROM, EPROM, EEPROM, EAROM, harddisk, CD ROM, or other memory device); b) a second memory device 304(e.g. a RAM or magnetic disk); and c) a graphics accelerator circuit306. Program memory 302 contains the program instructions executed byCPU 300. Memory 304 can comprise one or more memory devices. In oneembodiment, memory 304 contains a) a portion 304 a containinginformation concerning the polygons used to construct images of objects;and b) a portion 304 b containing pixel information to be applied, orbound, to the polygons. Graphics accelerator 306 accesses theinformation contained in memory 304 and constructs an image in a pixelarray memory 308. Information from pixel array memory 308 is provided tovideo electronics circuit 310 for display on video display screen 102.

Also shown in FIG. 6 is remote control device 150, which is manipulatedby a user as described above. Remote control device 150 provides signals(typically communicated via infra red communication (or any other methodas previously described) shown as dotted line arrow 311) to a transducer312 that is coupled to CPU 300. CPU 300 reads the signals provided byremote control device 150, and controls the images displayed on videoscreen 102 in response thereto. Also, many small differences can be madein the “architecture” of connecting the remote control base unit (e.g.the transceiver that receives signals from remote controller 150). Insome cases this architecture may mimic a parallel or serial port, and inother cases it may mimic a mouse and or a keyboard. This isadvantageous, since it allows remote controller 150 to send commandsdirectly to system 100, without requiring special driver software.

Also shown in FIG. 6 is a network I/O circuit 313. Network I/O circuit313 can be any of numerous different types of circuits, e.g. a modem forcommunicating with the internet, or an interface circuit forcommunicating with other LAN or WAN networks. As mentioned above, byclicking on icon or pictogram 122, a user can obtain data concerningitems that can be purchased from different vendors. In one embodiment,when a user clicks on one of these icons, a signal is communicated to aserver coupled to the LAN or WAN network, and that server communicatesvia network circuit 313 back to CPU 300 information to be displayed onscreen 102 concerning merchandise that can be ordered from that vendor.This information can be in the form of a web page, for example. Networkcircuit 313 can also be used to order pay-per-view items via a LAN orWAN.

Also shown in FIG. 6 is a television input circuit 316. Circuit 316receives a video signal from a source 317, e.g. a television antenna, anelectrical or optical cable system, a satellite system, or any otherappropriate video signal source. This signal is communicated to videoelectronics 310 for display on screen 102.

In one embodiment, the EPG can receive information and commands by akeyboard 318 that is electrically coupled to CPU 300. Keyboard 318 canbe an alphanumeric keyboard, e.g. a qwerty keyboard. However, othertypes of keyboards can be used in conjunction with the EPG. Keyboard 318provides additional flexibility for a user controlling the EPG.

Other Programmable Options

In one embodiment, the EPG can be programmed to provide to the user areminder when certain programs of interest are going to be on. This canbe accomplished using remote controller 150, clicking on a selectedprogram pictogram, and pressing a control button on the remotecontroller that instructs CPU 300 to display a prompt on screen 102shortly before that program is to be broadcast. Alternatively, remotecontroller 150 can have a numeric keyboard or a more complicated inputcontrol console for purposes of entering such information into the EPG.Alternatively, keyboard 318 can be used to enter this information.

In one embodiment, a user can modify the format in which the EPGinformation is to be displayed. For example, the user can adjust thesize of the text (e.g. the font size) of the information displayed bythe EPG. Thus, viewers with poor vision will be better able to read theinformation displayed by the EPG. Viewers with good vision can shrinkthe text size so that more information can be displayed on the screen bythe EPG. This can be accomplished by using remote controller 150 tocause CPU 300 to display an appropriate menu of control options onscreen 102. The user can then click on the displayed options to enter atext font size into the EPG. (The text font size is typically storedwithin a memory in the EPG, e.g. within memory 304.) Rather thanclicking on text font size options, text font size information can beentered into the EPG using keyboard 318.

There is a number of ways one can enter mode information into the EPG.For example, remote controller 150 can have a mode button. When the modebutton is pressed, a list of programmable menu options appears on screen102, and the user can click on a desired option. Alternatively, the EPGcan have a menu icon, and the user can click on the menu icon.Alternatively, there can be a menu button on video system 100 itselfthat a user can push. Other techniques can be used to communicateprogrammable option choices to the EPG.

EPG With Reduced Size Program Displays

In another embodiment, portions of the EPG can be used to displayreduced size (for example, thumbnail) versions of programs appearing onvarious channels, thereby permitting a viewer to preview programs. Forexample, optionally, a portion 320 of screen 102 (FIG. 2C) can depict athumbnail display of what is playing on one of the channels. In anotherembodiment, portion 320 of screen 102 can depict a set of reduced sizedisplays (e.g. in portions 320 a, 320 b, and 320 c of portion 320 ofscreen 102) so that viewer can see what is showing on differentchannels. In an alternative embodiment, the reduced size displays can bemapped into geometric surfaces, e.g. of a polyhedron (e.g. a cube) asdescribed in U.S. patent application Ser. No. 09/378,184, filed Aug. 20,1999 by Kamen et al., and U.S. patent application Ser. No. 09/378,220,filed Aug. 20, 1999 by Kamen et al. The '184 and '220 Applications areincorporated herein by reference.

The '184 and '220 Applications teach mapping (or binding) video imagesonto geometric surfaces using 3D accelerator technology. A 3D graphicsaccelerator generates a pixel array corresponding to these images asbound onto the geometric surfaces. By altering the position of a“virtual viewer”, or by altering the shape or angle of the geometricsurface, one can create an appearance similar to projecting a movie ontoa surface having a particular shape, or held at a particular angle. The'184 and '220 applications teach, among other things, that one candisplay a polyhedron (e.g. a cube), with different video imagesappearing on the various faces of the cube. One can alter theorientation of the polyhedron using the remote controller so thatdifferent polyhedron faces are exposed. In one embodiment of theinvention, programs from different channels are mapped onto differentfaces of a polyhedron (e.g. faces 560, 561 and 562 of an octahedron 563in FIG. 2C′). A viewer can rotate octahedron 563 to obtain a thumbnaildisplay of what is playing on the various channels. (For such anembodiment, it is typically desirable to include a video capture cardwithin system 100 for downloading the video signals into a pixel memoryso that graphics accelerator 306 can map these pixels onto the variousgeometric surfaces of polyhedron 563.)

The location and angle of the geometric surface upon which video clipsare mapped can be modified by the EPG. For example, by clicking on areduced size video image, the user can cause the EPG to move the imagecloser to the virtual viewer (i.e. enlarge the portion of the screenshowing the video image.)

EPG Operating as Shell or Window For Other Applications

In one embodiment, the EPG system provides a reliable and efficientmethod of updating or replacing the application software that implementsthe electronic guide at the user sites. This can be accomplished bydownloading such software either from the cable broadcaster (e.g. fromsource 317 using input circuitry 316), or via a WAN or LAN, e.g. usingnetwork I/O circuit 313 (FIG. 6). The EPG software can be designed inmodules. For example, one module is optionally a graphics user interface(GUI) module, whereas another module can handle the different displayicons. Another module can handle 3D graphics generation, and anothermodule can be a master program module. These modules can be downloadedinto program memory 302. EPG updates can be provided eitherautomatically or in response to a prompt from the user using remotecontroller 150.

In an embodiment which permits the automated updating of software, theprogram memory 302 should contain a programmable segment (e.g. a RAM,EEPROM, EAROM, magnetic memory or magneto-optic memory) to accommodatethe loading of data.

In one embodiment, the EPG operates as a shell or window to enable auser to access other applications or information systems that are notpart of the EPG application or data. For example, in one embodiment,when using the EPG, one can press a button on the remote controller, orclick on an icon within the EPG to active Internet server software (e.g.Netscape software Internet Explorer software, or other web surfingsoftware package). (Such software can be stored within program memory302.) In this embodiment, the information provided by the web and theweb surfing software package is bound to a flat geometric surface anddisplayed on screen 102. The viewer can then use the screen to browsethe, Internet as if he or she were logged onto a PC. (In such anembodiment, it is typically desirable to couple alphanumeric keyboard318 or other alphanumeric input device to video system 100 so that theuser can enter key words for searching or type URLs into system 100. Inthis embodiment, system 100 communicates with a proxy server or otherISP via network I/O circuit 313 (FIG. 6).

The options and features described above can be combined to provide a 3Denhanced EPG that allows user friendliness and interactivity not knownin current EPG systems. However, these options and features can bepracticed independently. Further, different combinations of theseoptions and features can be practiced in an EPG.

While the invention has been described with respect to specificembodiments, those skilled in the art will appreciate that changes canbe made in form and detail without departing from the spirit and scopeof the invention. For example, an EPG in accordance with the presentinvention can be displayed on CRT, LCD, projection, or other types ofdisplay systems. The EPG can be displayed on a television, personalcomputer, or a device that is a combination television/personalcomputer. The EPG can be used in conjunction with video signals that areprovided by electrical or optical cable, radio wave broadcast, satellitebroadcast, or other types of video signal transmission. The informationdisplayed in the EPG can originate from any of numerous sources, e.g.provided via electrical or optical cable, radio waves, satellitebroadcast, or a wide area network (for example, the Internet).

When displaying video information, the video information can be appliedto a geometric surface using a 3D graphics pipeline. Thus, as shown inFIG. 2B, both the EPG in portion 103 a of screen 102 and the televisionprogram in portion 103 b can be bound to geometric surfaces anddisplayed using a 3D graphics pipeline. (In fact, in one embodiment,when watching the television program without the EPG, the televisionprogram can be bound to a geometric surface and displayed as describedabove.)

As explained in the above-incorporated '442 application, the 3D graphicspipeline can be implemented by a combination of hardware elements, knownas accelerators, and software, some of which is referred to as drivers.The partitioning between hardware and software may vary. Accordingly,all of these modifications come within the present invention.

We claim:
 1. A method for displaying programming information comprising:displaying a video program on a first portion of a video display device;and simultaneously displaying on a second portion of said video displaydevice a programming guide indicating what programs are playing on otherchannels, wherein said programming guide comprises information in theform of pictograms, at least some of said pictograms comprisingcolor-coded information.
 2. Method of claim 1 wherein said secondportion of said video display device comprises a window region withinsaid first portion of said video display device.
 3. Method of claim 2wherein said video display device comprises a video screen.
 4. Method ofclaim 1 wherein said displaying of said programming guide comprisesusing a 3D graphics pipeline to generate images of pictograms.
 5. Methodof claim 4 further comprising generating said images from theperspective of a virtual viewer, said method further comprisingmanipulating the position of said virtual viewer with a controller. 6.Method of claim 5 further comprising selecting another program from saidprogramming guide information and displaying said selected program onsaid first portion of said video display device.
 7. Method of claim 1wherein at least one item displayed within the programming guide appearsto have a location that is non-coplanar with another item beingdisplayed within said programming guide.
 8. Method of claim 7 whereinsaid item comprises an image applied to a first computer model of ageometric surface such that said first geometric surface is not coplanarwith at least some other portions of the electronic programming guidethat are being displayed but is substantially parallel to said someother portions.
 9. Method of claim 8 wherein said electronic programmingguide comprises other items that are being displayed, said other itemscomprising images that are applied to one or more other computer modelsof a geometric surface, said method comprising moving said firstgeometric surface so that it is not coplanar with said one or more othercomputer models but is substantially parallel to said one or more othercomputer models.
 10. Method for displaying television programinformation on a display device comprising displaying a grid containingone or more pictograms, said one or more pictograms corresponding to oneor more television programs, said pictograms indicating to a viewer whatprograms are being shown on different television channels, wherein saidpictograms contain color-coded information.
 11. Method of claim 10further comprising moving a cursor to one of said pictograms andclicking on said one of said pictograms to select a programcorresponding to said one of said pictograms.
 12. Method of claim 10wherein said grid describes a channel indication, said method furthercomprising moving a cursor to said channel indication and clicking onsaid channel indication to select said channel.
 13. Method of claim 10further comprising selectively adjusting the size of at least one ofsaid pictograms.
 14. Method of claim 13 wherein the size of saidpictogram is adjusted by rendering an image of said pictogram from theperspective of a virtual viewer and adjusting the position of saidvirtual viewer.
 15. Apparatus comprising: a screen for displaying avideo program; and an electronic program guide for displaying televisionprogram information on a window within said screen while a video programis displayed on another portion of said screen outside of said window,said window being within the portion where the video program isdisplayed, wherein said video program is not substantially shrunk to fitinto said portion where the video program is displayed.
 16. Apparatus ofclaim 15 wherein said electronic program guide comprises an arrayindicating what programs are showing on a set of channels, said arraycomprising one or more pictograms identifying one or more of saidprograms.
 17. Apparatus of claim 15 wherein said electronic programmingguide comprises an array indicating what programs are showing on a setof channels, said array comprising one or more pictograms identifyingone or more of said channels.
 18. Apparatus comprising: a display devicefor displaying visual information; a receiving circuit for receivingvideo programs and displaying said video programs on said displaydevice; and a circuit for providing an electronic programming guide onsaid display device, wherein when said electronic programming guide isdisplayed on said display device, said electronic programming guide hasone or more windows for displaying a plurality of said video programs,wherein said circuit comprises a memory for storing a stream of pixelarrays, the stream of pixel arrays showing the video portion of saidplurality of said video programs, and a pipeline for mapping said pixelarrays onto geometric surfaces to generate a stream of output pixelarrays, said stream of output pixel arrays being displayed on saiddisplay device as part of said electronic programming guide.
 19. Methodfor displaying television program information on a display devicecomprising displaying a grid containing one or more pictograms, said oneor more pictograms corresponding to one or more television programs,said one or more pictograms indicating to a viewer the genre of anassociated program.
 20. Method of claim 10 or 19 wherein a plurality ofsaid pictograms is displayed within said grid.
 21. Apparatus comprising:a screen for displaying video programs; and a video control of circuitcoupled to said screen, said video control circuit causing said screento display an electronic programming guide, said electronic programmingguide being in the form of an array, said array comprising one or morepictograms identifying the genre of an associated program.
 22. Apparatusof claim 21 wherein a plurality of pictograms is displayed within saidarray.
 23. Method of claims 10 or 19 wherein said grid is part of aprogram guide and at least one item displayed within the programingguide appears to have a location that is non-coplanar with other itemsbeing displayed within said programming guide.
 24. Method of claim 23wherein said at least one item comprises text, a pictogram or a videoimage.
 25. Apparatus of claim 15, 18, or 21 wherein at least one objectdisplayed within the programming guide appears to have a location thatis non-coplanar with other objects being displayed within saidprogramming guide.